package singleton.entity;

/**
 * 懒汉模式 同时解决了多线程的线程安全 兼顾效率
 * @author yaojianfeng
 */
public class Singleton {
    /**
     * volatile关键词确保: 当uniqueInstance变量被初始化成singleton实例时,多个线程正确地处理
     */
    private volatile static Singleton uniqueInstance;

    // TODO: 2020/6/19  这里是其他的有用的实例

    /**
     * 单例模式的私有构造
     * 不对外提供公开的构造方法
     */
    private Singleton(){};

    public static Singleton getInstance() {
        if (uniqueInstance == null){
            synchronized (Singleton.class){
                if (uniqueInstance==null){
                    uniqueInstance = new Singleton();
                }
            }
            uniqueInstance = new Singleton();
        }
        return uniqueInstance;
    }
    // TODO: 2020/6/19  这里是其他的有用的方法
}
